/*
 * EditarMicrositio.java
 *
 * Created on 22 de mayo de 2007, 16:27
 */

package despachador.administracion;

import excepciones.AvwException;
import gestores.administracion.GestorMicrositio;
import java.io.*;
import java.net.*;
import java.util.logging.Logger;

import javax.servlet.*;
import javax.servlet.http.*;
import util.Archivos;
import util.Recurso;
import util.Utiles;

/**
 *
 * @author Administrador
 * @version
 */
public class EditarMicrositio extends HttpServlet {
    
    
    static final Logger logger = Utiles.iniciarLogger("Micrositio", true);
    
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    public void processRequest(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        
        String opcion = request.getParameter("opcion");
        if (opcion != null){
            if (opcion.equals("listarArchivos")){
                String mswCodigo = request.getParameter("mic");
                String mswNombre = request.getParameter("mswNombre");
                String mswUrl = request.getParameter("mswUrl");
                String mswTelefono = request.getParameter("mswTelefono");
                
                armarPaginaListarArchivos(request, response);
            } else if (opcion.equals("editarArchivo")){
                String mswCodigo = request.getParameter("mic");
                String mswNombre = request.getParameter("mswNombre");
                String mswUrl = request.getParameter("mswUrl");
                String mswTelefono = request.getParameter("mswTelefono");
                
                armarPaginaEditarMicrositio(request, response);
            } else if (opcion.equals("eliminarArchivo")){
                String mswCodigo = request.getParameter("mic");
                String mswNombre = request.getParameter("mswNombre");
                String mswUrl = request.getParameter("mswUrl");
                String mswTelefono = request.getParameter("mswTelefono");
                
                File archivo = new File(request.getParameter("path")+"/"
                        +request.getParameter("file"));
                Archivos.borrarDirectorio(archivo);
                
                armarPaginaListarArchivos(request, response);
            } else if (request.getParameter("opcion").equals("escribirArchivo")){
                File file = new File(request.getParameter("path")+"/"+
                        request.getParameter("file"));
                String fileString = request.getParameter("fileString");
                FileWriter fWriter;
                BufferedWriter bWriter;
                
                try {
                    fWriter = new FileWriter(file);
                    bWriter = new BufferedWriter(fWriter);
                    bWriter.write(fileString);
                    bWriter.close();
                    fWriter.close();
                    file = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
                armarPaginaListarArchivos(request, response);
            }else if (opcion.equals("nuevoArchivo")){
                if (!Archivos.upload(request,"fileNuevoArchivo",
                        request.getParameter("path"),
                        request.getParameter("fileNuevoArchivo"))){
                }else{
                    request.setAttribute("errorMsj","Se debe seleccionar un archivo.");
                }
                
                armarPaginaListarArchivos(request, response);
            }else{
                armarPagina(request, response);
            }
        }else{
            armarPagina(request, response);
        }
    }
    
    private void armarPagina(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/micrositios.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        
        dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
    }
    
    private void armarPaginaEditarMicrositio(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/editarMicrositio.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        
        dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
    }
    
    private void armarPaginaListarArchivos(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/listarArchivos.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        
        dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
    
    /**
     * dispatcher method
     */
    protected void dispatch(HttpServletRequest request,
            HttpServletResponse response, String page)
            throws javax.servlet.ServletException,
            java.io.IOException {
        RequestDispatcher dispatcher =
                getServletContext().
                getRequestDispatcher(page);
        dispatcher.forward(request, response);
    }
    
    private void crearCarpetasMicrositio(String nombreMicrositio){
        Recurso r = null;
        String dirMicrositios = "";
        try {
            r = new Recurso("negocio.properties");
            logger.info("Crea el recurso del properties");
            dirMicrositios = r.obtenerPropiedad("dirMicrositios");
        } catch (AvwException ex) {
            ex.printStackTrace();
        }
        File base = new File(dirMicrositios+"/base");
        File micrositio = new File(dirMicrositios+"/"+nombreMicrositio.toUpperCase());
        try {
            util.Utiles.copiarDirectorio(base,micrositio);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}
